
// 定义store数据

// 第一步: 通过redux 中的提供的一个方法 createStore
import { legacy_createStore as createStore } from 'redux';

// 引入方法combineReducer  
import { combineReducers } from 'redux'

// 引入商品模块
import goodsReducer from './reducers/goodsReducer';
// 引入用户模块
import userReducer from './reducers/userReducer';



// 如上: 如果项目中的数据管理模块比较多的时候, 这时候,希望可以有一个方法可以自动帮你合并所有模块
// webapck 提供了一个方法  require.context(要遍历的目录, 是否递归, 目录中要处理的文件)
// 批量处理导入的文件. 不用你自己一个一个设置了
// 目的: { user: userReducer, goods: goodsReducer }
const file = require.context('./reducers', false, /\.js$/);
// console.log('file', file.keys());
const result = {};

file.keys().forEach(item => {
    const begin = item.lastIndexOf('/');
    const end = item.lastIndexOf('.');
    // console.log(item.substring(begin + 1, end))
    const key = item.substring(begin + 1, end)
    // 获取导出的内容 export default 内容
    const fileexport = file(item).default
    // console.log(key, fileexport);
    result[key] = fileexport
});

// console.log(result)
const store = createStore(
    combineReducers(result),
    // 使用combineReducers方法可以将多个reducer函数最终结合成一个reducer 并返回
    window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
)

// 第五步: 导出store
export default store
